.TH DNSMASQ 8
.SH NAME
Dnsmasq \- Un serveur DHCP et cache DNS poids-plume.
.SH SYNOPSIS
.B dnsmasq
.I [OPTION]...
.SH "DESCRIPTION"
.BR dnsmasq
est un serveur DHCP et DNS à faible empreinte mémoire. Il offre à la fois les
services DNS et DHCP pour un réseau local (LAN).
.PP
Dnsmasq accepte les requêtes DNS et y réponds soit en utilisant un petit cache
local, soit en effectuant une requête à un serveur DNS récursif externe (par
exemple celui de votre fournisseur d'accès internet). Il charge le contenu du
fichier /etc/hosts afin que les noms locaux n'apparaissant pas dans les DNS
globaux soient tout de même résolus, et assure également la résolution de nom
pour les hôtes présents dans le service DHCP.
.PP
Le serveur DHCP Dnsmasq DHCP supporte les définitions d'adresses statiques et les
réseaux multiples. Il envoie par défaut un jeu raisonnable de paramètres DHCP, et
peut être configuré pour envoyer n'importe quel option DHCP.
Il inclut un serveur TFTP sécurisé en lecture seule permettant le démarrage via
le réseau/PXE de clients DHCP et supporte également le protocole BOOTP.
.PP
Dnsmasq supporte IPv6 pour le DNS mais pas pour le DHCP.
.SH OPTIONS
Notes : Il est possible d'utiliser des options sans leur donner de paramètre.
Dans ce cas, la fonction correspondante sera désactivée. Par exemple
.B --pid-file=
(sans paramètre après le =) désactive l'écriture du fichier PID.
Sur BSD, à moins que le logiciel ne soit compilé avec la bibliothèque GNU
getopt, la forme longue des options ne fonctionne pas en ligne de commande; Elle
est toujours supportée dans le fichier de configuration.
.TP
.B --test
Vérifie la syntaxe du ou des fichiers de configurations. Se termine avec le
code de retour 0 si tout est OK, ou un code différent de 0 dans le cas
contraire. Ne démarre pas Dnsmasq.
.TP
.B \-h, --no-hosts
Ne pas charger les noms du fichier /etc/hosts.
.TP
.B \-H, --addn-hosts=<fichier>
Fichiers d'hôtes additionnels. Lire le fichier spécifié en plus de /etc/hosts.
Si 
.B -h
est spécifié, lire uniquement le fichier spécifié. Cette option peut être
répétée afin d'ajouter d'autres fichiers. Si un répertoire est donné, lis les
fichiers contenus dans ce répertoire.
.TP
.B \-E, --expand-hosts
Ajoute le nom de domaine aux noms simples (ne contenant pas de point dans le
nom) contenus dans le fichier /etc/hosts, de la même façon que pour le service
DHCP. Notez que cela ne s'applique pas au nom de domaine dans les CNAME, les
enregistrements PTR, TXT, etc...
.TP
.B \-T, --local-ttl=<durée>
Lorsque Dnsmasq répond avec une information provenant du fichier /etc/hosts ou
avec un bail DHCP, il donne un temps de vie (time-to-live) positionné à zéro,
afin d'indiquer à la machine faisant la requête que celle-ci  ne doit pas être
mise dans un cache. Ceci est le comportement correct dans presque toutes les
situations.
Cette option permet de spécifier la valeur de time-to-live à retourner (en
secondes). Cela permet de réduire la charge sur le serveur, mais les clients
risquent d'utiliser des données périmées dans certains cas.
.TP
.B --neg-ttl=<durée>
Les réponses négatives provenant des serveurs amonts contiennent normalement
une information de durée de vie (time-to-live) dans les enregistrements SOA,
information dont dnsmasq se sert pour mettre la réponse en cache. Si la réponse
du serveur amont omet cette information, dnsmasq ne cache pas la réponse. Cette
option permet de doner une valeur de durée de vie par défaut (en secondes) que
dnsmasq utilise pour mettre les réponses négatives dans son cache, même en
l'absence d'enregistrement SOA.
.TP
.B \-k, --keep-in-foreground
Ne pas aller en tâche de fond au lancement, mais en dehors de cela, fonctionner
normalement. Ce mode est prévu pour les cas où Dnsmasq est lancé par daemontools
ou launchd.
.TP
.B \-d, --no-daemon
Mode debug (déverminage) : ne pas aller en tâche de fond, ne pas écrire de
fichier pid, ne pas changer d'identifiant utilisateur, générer un état complet
du cache lors de la réception d'un signal SIGUSR1, envoyer les logs sur la
sortie standard d'erreur ("stderr") de même que dans le syslog, ne pas créer de
processus fils pour traiter les requêtes TCP.
.TP
.B \-q, --log-queries
Enregistrer les résultats des requêtes DNS traitées par Dnsmasq dans un fichier
de traces ("logs"). Active la génération d'un état complet du cache lors de la
réception d'un signal SIGUSR1.
.TP
.B \-8, --log-facility=<facility>
Définit la "facility" dans laquelle Dnsmasq enverra ses entrées syslog, par
défaut DAEMON ou LOCAL0 si le mode debug est activé. Si la "facility" contient
au moins un caractère "/", alors Dnsmasq considère qu'il s'agit d'un fichier et
enverra les logs dans le fichier correspondant à la place du syslog. (Les
erreurs lors de la lecture de la configuration vont toujours vers le syslog,
mais tous les messages postérieures à un démarrage réussi seront exclusivement
envoyés vers le fichier de logs). Lorsque Dnsmasq est configuré pour envoyer
ses traces vers un fichier, la réception d'un signal SIGUSR2 entraine la
fermeture et réouverture du fichier. Cela permet la rotation de fichiers de
traces sans nécessiter l'arrêt de Dnsmasq.
.TP
.B --log-async[=<lignes>]
Permet l'envoi de traces de manière asynchrone, et de manière optionnelle, le
nombre de lignes devant être mises dans la file d'attente par Dnsmasq lorsque
l'écriture vers le syslog est lente.
Dnsmasq peut envoyer ses logs de manière asynchrone : cela lui permet de
continuer à fonctionner sans être bloqué par le syslog, et permet à syslog
d'utiliser Dnsmasq pour les résolutions DNS sans risque d'interblocage.
Si la file d'attente devient pleine, Dnsmasq loggera le dépassement de file et
le nombre de messages perdus. La longueur par défaut de la file d'attente est de
5 et une valeur saine sera comprise entre 5 et 25, avec une limite maximum
imposée de 100.
.TP
.B \-x, --pid-file=<chemin>
Spécifie un fichier dans lequel stocker le numéro de processus (pid). La valeur
par défaut est /var/run/dnsmasq.pid.
.TP
.B \-u, --user=<nom d'utilisateur>
Spécifie l'identité (nom d'utilisateur) prise par Dnsmasq après le démarrage.
Dnsmasq doit normalement être démarré en temps que root ("super-utilisateur"),
mais abandonne ses privilèges après le démarrage en changeant d'identité.
Normalement cet utilisateur est l'utilisateur nobody ("personne"), mais il est
possible d'en définir un autre par le biais de ce paramètre.
.TP
.B \-g, --group=<nom de groupe> 
Spécifie le groupe sous lequel Dnsmasq s'exécute. Par défaut, il s'agit du
groupe "dip", afin de faciliter l'accès au fichier /etc/ppp/resolv.conf qui
n'est en général pas en lecture par tout le monde.
.TP
.B \-v, --version
Imprime le numéro de version.
.TP
.B \-p, --port=<port>
Ecoute sur le port numéro <port> au lieu du port DNS standard (53). Paramétrer
cette valeur à zéro désactive complètement la fonction DNS pour ne laisser actif
que le DHCP ou le TFTP.
.TP
.B \-P, --edns-packet-max=<taille>
Spécifie la taille maximum de paquet UDP EDNS.0 supporté par le relai DNS. Le
défaut est de 1280, qui est la valeur maximale
recommandée pour ethernet dans la RFC2671.
.TP
.B \-Q, --query-port=<numéro de port>
Envoie et écoute les requêtes DNS sortantes depuis le port UDP spécifié par
<numéro de port>, et non sur un port aléatoire. NOTE : Cette option rends
dnsmasq moins sûr contre les attaques par usurpation DNS ("DNS spoofing"), mais
cela peut permettre d'utiliser moins de ressources et d'être plus rapide. Donner
une valeur de zéro à cette option restaure le comportement par défaut présent dans
les versions de dnsmasq inférieures à 2.43 qui consiste à n'allouer qu'un seul port
alloué par le système d'exploitation.
.TP
.B --min-port=<port>
Ne pas utiliser de port dont le numéro est inférieur à la valeur donnée en paramètre
pour les requêtes DNS sortantes. Dnsmasq choisis un port source aléatoire pour les
requêtes sortantes : lorsque cette option est fournie, les ports utilisés seront toujours
au dessus de la valeur spécifiée. Utile pour des systèmes derrière des dispositifs
garde-barrières ("firewalls").
.TP
.B \-i, --interface=<nom d'interface>
N'écouter que sur l'interface réseau spécifiée. Dnsmasq aujoute automatiquement
l'interface locale ("loopback") à la liste des interfaces lorsque l'option
.B --interface
est utilisée.
Si aucune option
.B --interface
ou
.B --listen-address
n'est donnée, Dnsmasq écoutera sur toutes les interfaces disponibles sauf
celle(s) spécifiée(s) par l'option
.B --except-interface.
Les alias d'interfaces IP (e-g "eth1:0") ne peuvent être utilisés ni avec
.B --interface
ni
.B \--except-interface.
Utiliser l'option 
.B --listen-address
à la place. 
.TP
.B \-I, --except-interface=<interface name>
Ne pas écouter sur l'interface spécifiée. Notez que l'ordre dans lesquelles les
options
.B \--listen-address
,
.B --interface
et
.B --except-interface
sont fournies n'importe pas, et que l'option 
.B --except-interface
l'emporte toujours sur les autres.
.TP 
.B \-2, --no-dhcp-interface=<nom d'interface>
Ne pas fournir de service DHCP sur l'interface spécifiée, mais fournir tout de
même le service DNS.
.TP
.B \-a, --listen-address=<adresse IP>
Ecouter sur la ou les adresse(s) IP spécifiée(s). Les options 
.B \--interface
et
.B \--listen-address
peuvent-être spécifiées simultanément, auquel cas un jeu d'interfaces et
d'adresses seront utilisées. Notez que si
aucune option
.B \--interface
n'est donnée alors qu'une option 
.B \--listen-address
l'est, Dnsmasq n'écoutera pas automatiquement sur l'interface locale
("loopback"). Pour activer l'écoute sur l'interface locale, il est alors
nécessaire de fournir explicitement son adresse IP, 127.0.0.1 via l'option
.B \--listen-address.
.TP
.B \-z, --bind-interfaces
Sur les systèmes qui le supporte, Dnsmasq s'associe avec l'interface joker
("wildcard"), même lorsqu'il ne doit écouter que sur certaines interfaces. Par
la suite, il rejette les requêtes auxquelles il ne doit pas répondre. Cette
situation présente l'avantage de fonctionner même lorsque les interfaces vont
et viennent ou changent d'adresses. L'option 
.B --bind-interfaces
force Dnsmasq à ne réellement s'associer qu'avec les interfaces sur lesquelles
il doit écouter. L'un des seuls cas où cette option est utile est celui où un
autre serveur de nom (ou une autre instance de Dnsmasq) tourne sur la même
machine. Utiliser cette option permet également d'avoir plusieurs instances de
Dnsmasq fournissant un service DHCP sur la même machine.
.TP
.B \-y, --localise-queries
Retourne des réponses aux requêtes DNS dépendantes de l'interface sur laquelle
la requête a été reçue, à partir du fichier /etc/hosts. Si un nom dans
/etc/hosts a plus d'une adresse associée avec lui, et qu'une des adresses au
moins est dans le même sous-réseau que l'interface sur laquelle la requête a été
reçue, alors ne retourne que la(les) adresse(s) du sous-réseau considéré. Cela
permet d'avoir dans /etc/hosts un serveur avec de multiples adresses, une pour
chacune de ses interfaces, et de fournir aux hôtes l'adresse correcte (basée sur
le réseau auquel ils sont attachés). Cette possibilité est actuellement limitée
à IPv4.
.TP
.B \-b, --bogus-priv
Fausse résolution inverse pour les réseaux privés. Toutes les requêtes DNS
inverses pour des adresses IP privées (ie 192.168.x.x, etc...) qui ne sont pas
trouvées dans /etc/hosts ou dans le fichier de baux DHCP se voient retournées
une réponse "pas de tel domaine" ("no such domain") au lieu d'être transmises
aux serveurs de nom amont ("upstream server").
.TP
.B \-V, --alias=[<ancienne IP>]|[<IP de début>-<IP de fin>],<nouvelle IP>[,<masque>]
Modifie les adresses IPv4 retournées par les serveurs de nom amont;
<ancienne IP> est remplacée par <nouvelle IP>. Si le <masque> optionnel est
fourni, alors toute adresse correspondant à l'adresse <ancienne IP>/<masque>
sera réécrite. Ainsi par exemple
.B --alias=1.2.3.0,6.7.8.0,255.255.255.0 
modifiera 1.2.3.56 en 6.7.8.56 et 1.2.3.67 en 6.7.8.67. 
Cette fonctionnalité correspond à ce que les routeurs Cisco PIX appellent
"bidouillage DNS" ("DNS doctoring"). Si l'ancienne IP est donnée sous la forme
d'une gamme d'adresses, alors seules les adresses dans cette gamme seront
réecrites, et non le sous-réseau dans son ensemble. Ainsi,
.B --alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0
fait correspondre 192.168.0.10->192.168.0.40 à 10.0.0.10->10.0.0.40
.TP 
.B \-B, --bogus-nxdomain=<adresse IP>
Transforme les réponses contenant l'adresse IP fournie en réponses "pas de tel
domaine" ("no such domain"). Ceci a pour but de neutraliser la modification
sournoise mise en place par Verisign en septembre 2003, lorsqu'ils ont commencé
à retourner l'adresse d'un serveur web publicitaire en réponse aux requêtes pour
les noms de domaines non enregistrés, au lieu de la réponse correcte "NXDOMAIN".
Cette option demande à Dnsmasq de retourner la réponse correcte lorsqu'il
constate ce comportement. L'adresse retournée par Verisign en septembre 2003
est 64.94.110.11.
.TP
.B \-f, --filterwin2k
Les dernières versions de windows font des requêtes DNS périodiques auxquelles
non seulement les serveurs DNS publics ne peuvent donner de réponse, mais qui,
de surcroît, peuvent poser des problèmes en déclenchant des connexions
intempestives pour des liens réseaux avec des connexions "à la demande". Fournir
cette option active le filtrage des requêtes de ce type. Les requêtes bloquées
sont les requêtes pour les entrées de type SOA ou SRV, ainsi que les requêtes de
type ANY avec des noms possédant des caractères sous-lignés (requêtes pour des
serveurs LDAP).
.TP
.B \-r, --resolv-file=<fichier>
Lis les adresses des serveurs de nom amont dans le fichier de nom <fichier>,
au lieu du fichier /etc/resolv.conf. Pour le format de ce fichier, voir dans le
manuel pour
.BR resolv.conf (5) 
les entrées correspondant aux serveurs de noms (nameserver). Dnsmasq peut lire
plusieurs fichiers de type resolv.conf, le premier fichier spécifié remplace le
fichier par défaut, le contenu des suivants est rajouté dans la liste des
fichiers à consulter. Seul le fichier ayant la dernière date de modification
sera chargé en mémoire.
.TP
.B \-R, --no-resolv
Ne pas lire le contenu du fichier /etc/resolv.conf. N'obtenir l'adresse des
serveurs de nom amont que depuis la ligne de commande ou le fichier de
configuration de Dnsmasq.
.TP
.B \-1, --enable-dbus
Autoriser la mise à jour de la configuration de Dnsmasq par le biais d'appel de
méthodes DBus. Il est possible par ce biais de mettre à jour l'adresse de
serveurs DNS amont (et les domaines correspondants) et de vider le cache. Cette
option nécessite que Dnsmasq soit compilé avec le support DBus.
.TP 
.B \-o, --strict-order
Par défaut, Dnsmasq envoie les requêtes à n'importe lequel des serveurs amonts
dont il a connaissance tout en essayant de favoriser les serveurs qu'il sait
fonctionner. Cette option force Dnsmasq à essayer d'interroger, pour chaque
requête, les serveurs DNS dans leur ordre d'apparition dans le fichier
/etc/resolv.conf.
.TP
.B --all-servers
Par défaut, lorsque dnsmasq a plus d'un serveur amont disponible, il n'envoie
les requêtes qu'à un seul serveur. Spécifier cette option force dnsmasq à
effectuer ses requêtes à tous les serveurs disponibles. Le résultat renvoyé
au client sera celui fournit par le premier serveur ayant répondu.
.TP
.B --stop-dns-rebind
Rejete (et enregistre dans le journal d'activité) les adresses dans la gamme
d'adresses IP privée (au sens RFC1918) qui pourraient être renvoyées par les
serveurs amonts suite à une résolution de nom. Cela bloque les attaques cherchant
à détourner de leur usage les logiciels de navigation web ('browser') en s'en
servant pour découvrir les machines situées sur le réseau local.
.TP
.B \-n, --no-poll
Ne pas vérifier régulièrement si le fichier /etc/resolv.conf a été modifié.
.TP
.B --clear-on-reload
Lorsque le fichier /etc/resolv.conf est relu, vider le cache DNS.
Cela est utile si les nouveaux serveurs sont susceptibles d'avoir des données
différentes de celles stockées dans le cache.
.TP
.B \-D, --domain-needed
Indique à Dnsmasq de ne jamais transmettre en amont de requêtes pour des noms
simples, ne comprenant donc ni points ni nom de domaine. Si un nom n'est pas
dans /etc/hosts ou dans la liste des baux DHCP, alors une réponse de type
"non trouvé" est renvoyée.
.TP
.B \-S, --local, --server=[/[<domaine>]/[domaine/]][<Adresse IP>[#<port>][@<Adresse IP source>|<interface>[#<port>]]]
Spécifie directement l'adresse IP d'un serveur de nom amont. Cette option ne
supprime pas la lecture du fichier /etc/resolv.conf : utiliser pour cela
l'option
.B -R .
Si un ou plusieurs nom(s) de domaine(s) optionnel(s) sont fournis, ce
serveur sera uniquement utilisé uniquement pour ce(s) domaine(s), et toute
requête concernant ce(s) domaine(s) sera adressée uniquement à ce serveur.
Cette option est destinée aux serveurs de nom privés : si vous avez un serveur
de nom sur votre réseau ayant pour adresse IP 192.168.1.1 et effectuant la
résolution des noms de la forme xxx.internal.thekelleys.org.uk, alors
.B -S /internal.thekelleys.org.uk/192.168.1.1 
enverra toutes les requêtes pour les machines internes vers ce serveur de nom,
alors que toutes les autres requêtes seront adressées aux serveurs indiqués dans
le fichier /etc/resolv.conf. Une spécification de nom de domaine vide,
.B // 
possède le sens particulier de "pour les noms non qualifiés uniquement",
c'est-à-dire les noms ne possédant pas de points. Un port non standard peut être
rajouté à la suite des adresses IP en utilisant le caractère #. Plus d'une
option
.B -S
est autorisée, en répétant les domaines et adresses IP comme requis.

Il est également permis de donner une option
.B -S
avec un nom de domaine mais sans
adresse IP; Cela informe Dnsmasq que le domaine est local et qu'il doit répondre
aux requêtes le concernant depuis les entrées contenues dans le fichier
/etc/hosts ou les baux DHCP, et ne doit en aucun cas transmettre les requêtes
aux serveurs amonts.
.B local
est synonyme de
.B server
("serveur") afin de rendre plus claire l'utilisation de cette option pour cet
usage particulier.

La chaîne de caractères optionnelle suivant le caractère @ permet de définir
la source que Dnsmasq doit utiliser pour les réponses à ce
serveur de nom. Il doit s'agir d'une des adresses IP appartenant à la machine sur
laquelle tourne Dnsmasq ou sinon la ligne sera ignorée et une erreur sera
consignée dans le journal des événements, ou alors d'un nom d'interface. Si un nom
d'interface est donné, alors les requêtes vers le serveur de nom seront envoyées
depuis cette interface; si une adresse ip est donnée, alors l'adresse source de
la requête sera l'adresse en question. L'option query-port est ignorée pour tous
les serveurs ayant une adresse source spécifiée, mais il est possible de la donner
directement dans la spécification de l'adresse source. Forcer les requêtes à être
émises depuis une interface spécifique n'est pas possible sur toutes les plateformes
supportées par dnsmasq.
.TP
.B \-A, --address=/<domaine>/[domaine/]<adresse IP>
Spécifie une adresse IP à retourner pour toute requête pour les domaines fournis
en option. Les requêtes pour ce(s) domaine(s) ne sont jamais transmises aux
serveurs amonts et reçoivent comme réponse l'adresse IP spécifiée qui peut être
une adresse IPv4 ou IPv6. Pour donner à la fois une adresse IPv4 et une adresse
IPv6 pour un domaine, utiliser plusieurs options
.B -A.
Il faut noter que le
contenu du fichier /etc/hosts et de celui des baux DHCP supplante ceci pour des
noms individuels. Une utilisation courante de cette option est de rediriger la
totalité du domaine doubleclick.net vers un serveur web local afin d'éviter les
bannières publicitaires. La spécification de domaine fonctionne de la même façon
que
.B  --server,
avec la caractéristique supplémentaire que
.B /#/
coïncide avec tout domaine. Ainsi,
.B --address=/#/1.2.3.4
retournera 1.2.3.4 pour toute requête
n'ayant de réponse ni dans /etc/hosts, ni dans les baux DHCP, et n'étant pas
transmise à un serveur spécifique par le biais d'une directive
.B --server.
.TP
.B \-m, --mx-host=<nom de l'hôte>[[,<nom du MX>],<préference>]
Spécifie un enregistrement de type MX pour <nom de l'hôte> retournant le nom
donné dans <nom du MX> (s'il est présent), ou sinon le nom spécifié dans
l'option
.B --mx-target
si elle est présente. Sinon retourne le nom de la machine
sur laquelle Dnsmasq tourne. La valeur par défaut (spécifiée dans l'option
.B --mx-target
) est utile dans un réseau local pour rediriger les courriers
électroniques vers un serveur central. La valeur de préférence est optionnelle
et vaut par défaut 1 si elle n'est pas spécifiée. Plus d'une entrée MX peut être
fournie pour un hôte donné.
.TP 
.B \-t, --mx-target=<nom d'hôte>
Spécifie la réponse par défaut fournie par Dnsmasq pour les requêtes sur des
enregistrements de type MX. Voir
.B --mx-host.
Si
.B --mx-target
est donné mais pas de
.B --mx-host,
alors Dnsmasq retourne comme réponse un enregistrement MX
contenant le nom d'hôte spécifié dans l'option
.B --mx-target
pour toute requête
concernant le MX de la machine sur laquelle tourne Dnsmasq.
.TP
.B \-e, --selfmx
Définit, pour toutes les machines locales, un MX correspondant à l'hôte
considéré. Les machines locales sont celles définies dans le fichier /etc/hosts
ou dans un bail DHCP.
.TP 
.B \-L, --localmx
Définit, pour toutes les machines locales, un enregistrement MX pointant sur
l'hôte spécifié par mx-target (ou la machine sur laquelle Dnsmasq tourne). Les
machines locales sont celles définies dans le fichier /etc/hosts ou dans un bail
DHCP.
.TP
.B \-W --srv-host=<_service>.<_protocole>.[<domaine>],[<cible>[,<port>[,<priorité>[,<poids>]]]]
Spécifie un enregistrement DNS de type SRV. Voir la RFC2782 pour plus de
détails. Si le champs <domaine> n'est pas fourni, prends par défaut la valeur
fournie dans l'option
.B --domain.
La valeur par défaut pour le domaine est vide et le port par défaut est 1, alors
que les poids et priorités par défaut sont 0. Attention lorsque vous transposez
des valeurs issues d'une configuration BIND : les ports, poids et priorités sont
dans un ordre différents. Pour un service/domaine donné, plus d'un
enregistrement SRV est autorisé et tous les enregistrements qui coïncident sont
retournés dans la réponse.
.TP
.B \-Y, --txt-record=<nom>[[,<texte>],<texte>]
Définit un enregistrement DNS de type TXT. La valeur de l'enregistrement TXT est
un ensemble de chaînes de caractères, donc un nombre variable de chaînes de
caractères peuvent être spécifiées, séparées par des virgules.
.TP
.B --ptr-record=<nom>[,<cible>]
Définit un enregistrement DNS de type PTR.
.TP
.B --naptr-record=<nom>,<ordre>,<préférence>,<drapeaux>,<service>,<expr. régulière>[,<remplacement>]
Retourne un enregistrement de type NAPTR, tel que spécifié dans le RFC3403.
.TP
.B --cname=<cname>,<cible>
Retourne un enregistrement de type CNAME qui indique que <cname> est en
réalité <cible>. Il existe des contraintes significatives sur la valeur
de cible; il doit s'agir d'un nom DNS qui est connu de dnsmasq via /etc/hosts
(ou un fichier hôtes additionnel) ou via DHCP. Si une cible ne satisfait
pas ces critères, le CNAME est ignoré. Le CNAME doit être unique, mais
il est autorisé d'avoir plus d'un CNAME pointant vers la même cible.
.TP
.B --interface-name=<nom>,<interface>
Définit un entregistrement DNS associant le nom avec l'adresse primaire sur
l'interface donnée en argument. Cette option spécifie un enregistrement de type
A pour le nom donné en argument de la même façon que s'il était défini par une
ligne de /etc/hosts, sauf que l'adresse n'est pas constante mais dépendante de
l'interface définie. Si l'interface est inactive, non existante ou non
configurée, une réponse vide est fournie. Un enregistrement inverse (PTR) est
également créé par cette option, associant l'adresse de l'interface avec le nom.
Plus d'un nom peut être associé à une interface donnée en répétant cette option
plusieurs fois; dans ce cas, l'enregistrement inverse pointe vers le nom fourni
dans la première instance de cette option.
.TP
.B \-c, --cache-size=<taille>
Définit la taille du cache de Dnsmasq. La valeur par défaut est de 150 noms.
Définir une valeur de zéro désactive le cache.
.TP
.B \-N, --no-negcache
Désactive le "cache négatif". Le "cache négatif" permet à Dnsmasq de se souvenir
des réponses de type "no such domain" fournies par les serveurs DNS en amont et
de fournir les réponses sans avoir à re-transmettre les requêtes aux serveurs
amont.
.TP
.B \-0, --dns-forward-max=<nombre de requêtes>
Définit le nombre maximum de requêtes DNS simultanées. La valeur par défaut est
150, ce qui devrait être suffisant dans la majorité des configurations. La seule
situation identifiée dans laquelle cette valeur nécessite d'être augmentée est
lorsqu'un serveur web a la résolution de nom activée pour l'enregistrement de
son journal des requêtes, ce qui peut générer un nombre important de requêtes
simultanées.
.TP
.B \-F, --dhcp-range=[[net:]identifiant de réseau,]<adresse de début>,<adresse de fin>[[,<masque de réseau>],<broadcast>][,<durée de bail>]
Active le serveur DHCP. Les adresses seront données dans la plage comprise entre
<adresse de début> et <adresse de fin> et à partir des adresses définies
statiquement dans l'option
.B dhcp-host.
Si une durée de bail est donnée, alors les baux seront donnés pour cette
durée. La durée de bail est donnée en secondes, en minutes (exemple : 45m),
en heures (exemple : 1h) ou être la chaine de caractère "infinite" pour une
durée indéterminée. Si aucune valeur n'est donnée, une durée de bail par défaut
de une heure est appliquée. La valeur minimum pour un bail DHCP est de 2
minutes.
Cette option peut être répétée, avec différentes adresses,
pour activer le service DHCP sur plus d'un réseau. Pour des réseaux directement
connectés (c'est-à-dire des réseaux dans lesquels la machine sur laquelle tourne
Dnsmasq possède une interface), le masque de réseau est optionnel. Il est par
contre requis pour les réseaux pour lesquels le service DHCP se fait via un
relais DHCP ("relay agent"). L'adresse de broadcast est toujours optionnelle.

Il est toujours possible d'avoir plus d'une plage DHCP pour un même
sous-réseau.

L'identifiant de réseau optionnel est un label alphanumérique qui permet de
marquer ce réseau afin de fournir des options DHCP spécifiques à chaque réseau.
Lorsque préfixé par 'net:', la signification change est au lieu de définir un
label, il définit le label pour laquelle la règle s'applique. Un seul label peut-
être défini mais plusieurs labels peuvent coïncider.

L'adresse de fin peut être remplacée par le mot-clef
.B static
("statique") qui indique à Dnsmasq d'activer le service DHCP pour le réseau
spécifié, mais de ne pas activer l'allocation dynamique d'adresses IP : Seuls
les hôtes possédant des adresses IP statiques fournies via 
.B dhcp-host
ou présentes dans le fichier /etc/ethers seront alors servis par le DHCP.

L'adresse de fin peut-être remplacée par le mot-clef
.B proxy
, auquel cas Dnsmasq fournira un service de DHCP proxy pour le sous-réseau
spécifié. (voir
.B pxe-prompt
et
.B pxe-service
pour plus de détails).
.TP
.B \-G, --dhcp-host=[<adresse matérielle>][,id:<identifiant client>|*][,net:<identifiant de réseau>][,<adresse IP>][,<nom d'hôte>][,<durée de bail>][,ignore]
Spécifie les paramètres DHCP relatifs à un hôte. Cela permet à une machine
possédant une adresse matérielle spécifique de se voir toujours allouée les
mêmes nom d'hôte, adresse IP et durée de bail. Un nom d'hôte spécifié comme
ceci remplace le nom fourni par le client DHCP de la machine hôte. Il est
également possible d'omettre l'adresse matérielle et d'inclure le nom d'hôte,
auquel cas l'adresse IP et la durée de bail s'appliqueront à toute machine se
réclamant de ce nom. Par exemple
.B --dhcp-host=00:20:e0:3b:13:af,wap,infinite 
spécifie à Dnsmasq de fournir à la machine d'adresse matérielle
00:20:e0:3b:13:af le nom, et un bail de durée indéterminée.

.B --dhcp-host=lap,192.168.0.199 
spécifie à Dnsmasq d'allouer toujours à la machine portant le nom lap
l'adresse IP 92.168.0.199. Les adresses allouées comme ceci ne sont pas
contraintes dans une plage d'adresse spécifiée par une option --dhcp-range, mais
elles doivent être sur un réseau servi par le serveur DHCP. Il est possible
d'utiliser des identifiants clients plutôt que des adresses matérielles pour
identifier les hôtes, en préfixant par ceux-ci par 'id:'. Ainsi, 
.B --dhcp-host=id:01:02:03:04,..... 
réfère à l'hôte d'identifiant 01:02:03:04. Il est également possible de
spécifier l'identifiant client sous la forme d'une chaîne de caractères, comme
ceci :
.B --dhcp-host=id:identifiantclientsousformedechaine,..... 

L'option spéciale id:* signifie : "ignorer tout identifiant client et n'utiliser
que l'adresse matérielle". Cela est utile lorsqu'un client présente un
identifiant client mais pas les autres.

Si un nom apparaît dans /etc/hosts, l'adresse associée peut être allouée à un
bail DHCP mais seulement si une option
.B --dhcp-host
spécifiant le nom existe par ailleurs. Le mot clef "ignore" ("ignorer") indique
à Dnsmasq de ne jamais fournir de bail DHCP à une machine. La machine peut être
spécifiée par son adresse matérielle, son identifiant client ou son nom d'hôte.
Par exemple
.B --dhcp-host=00:20:e0:3b:13:af,ignore
Cela est utile lorsqu'un autre serveur DHCP sur le réseau doit être utilisé par
certaines machines.

Le paramètre net:<identifiant réseau> permet de définir un
identifiant de réseau lorsque l'option dhcp-host est utilisée. Cela peut servir
à sélectionner des options DHCP juste pour cet hôte. Lorsqu'une machine coïncide
avec une directive dhcp-host (ou une impliquée par /etc/ethers), alors
l'identifiant réseau réservé "known" ("connu") est associé. Cela permet à
Dnsmasq d'être configuré pour ignorer les requêtes issus de machines inconnue
 par le biais de 
.B --dhcp-ignore=#known.

Les adresses ethernet (mais pas les identifiants clients) peuvent être définies
avec des octets joker, ainsi par exemple
.B --dhcp-host=00:20:e0:3b:13:*,ignore 
demande à Dnsmasq d'ignorer une gamme d'adresses matérielles. Il est  à noter
que "*" doit-être précédé d'un caractère d'échappement ou mis entre guillemets
lorsque spécifié en option de ligne de commande, mais pas dans le fichier de
configuration.

Les adresses matérielles coïncident en principe avec n'importe
quel type de réseau (ARP), mais il est possible de les limiter à un seul type
ARP en les précédant du type ARP (en Hexadécimal) et de "-". Ainsi
.B --dhcp-host=06-00:20:e0:3b:13:af,1.2.3.4 
coïncidera uniquement avec des adresses matérielles Token-Ring, puisque le type
ARP pour une adresse Token-Ring est 6.

Un cas spécial correspond à l'inclusion d'une ou plusieurs adresses
matérielles, c-à-d :
.B --dhcp-host=11:22:33:44:55:66,12:34:56:78:90:12,192.168.0.2.
Cela permet à une adresse IP d'être associé à plusieurs adresses
matérielles, et donne à dnsmasq la permission d'abandonner un bail DHCP
attribué à l'une de ces adresses lorsqu'une autre adresse dans la liste
demande un bail. Ceci est une opération dangereuse qui ne fonctionnera
de manière fiable que si une adresse matérielle est active à un moment
donné et dnsmasq n'a aucun moyen de s'assurer de cela. Cela est utile,
par exemple, pour allouer une adresse IP stable à un laptop qui
aurait à la fois une connexion filaire et sans-fil.
.TP
.B --dhcp-hostsfile=<fichier>
Lis les informations d'hôtes DHCP dans le fichier spécifié. Le fichier contient
des informations à raison d'un hôte par ligne. Le format d'une ligne est la même
que le texte fourni à la droite sur caractère "=" dans l'option
.B --dhcp-host.
L'avantage de stocker les informations sur les hôtes DHCP dans ce fichier est
que celles-ci peuvent être modifiées sans recharger Dnsmasq; le fichier sera
relu lorsque Dnsmasq reçoit un signal SIGHUP.
.TP
.B --dhcp-optsfile=<fichier>
Lis les informations relatives aux options DHCP dans le fichier spécifié.
L'intérêt d'utiliser cette option est le même que pour --dhcp-hostsfile : le
fichier spécifié sera rechargé à la réception par dnsmasq d'un signal SIGHUP.
Notez qu'il est possible d'encoder l'information via
.B --dhcp-boot
en utilisant les noms optionnels bootfile-name, server-ip-address et
tftp-server. Ceci permet d'inclure ces options dans un fichier "dhcp-optsfile".DNSMASQ_SUPPLIED_HOSTNAME
.TP
.B \-Z, --read-ethers
Lis les informations d'hôtes DHCP dans le fichier /etc/ethers. Le format de
/etc/ethers est une adresse matérielle suivie, soit par un nom d'hôte, soit par
une adresse IP sous la forme de 4 chiffres séparés par des points. Lorsque lu
par Dnsmasq, ces lignes ont exactement le même effet que l'option
.B --dhcp-host
contenant les mêmes informations. /etc/ethers est relu à la réception d'un
signal SIGHUP par Dnsmasq.
.TP
.B \-O, --dhcp-option=[<identifiant_de_réseau>,[<identifiant_de_réseau>,]][encap:<option>,][vendor:[<classe_vendeur>],][<option>|option:<nom d'option>],[<valeur>[,<valeur>]]
Spécifie des options différentes ou supplémentaires pour des clients DHCP. Par
défaut, Dnsmasq envoie un ensemble standard d'options aux clients DHCP : le
masque de réseau et l'adresse de broadcast sont les mêmes que pour l'hôte
sur lequel tourne Dnsmasq, et le serveur DNS ainsi que la route par défaut
prennent comme valeur l'adresse de la machine sur laquelle tourne Dnsmasq. Si
une option de nom de domaine a été définie, son contenu est transmis. Cette
option de configuration permet de changer toutes ces valeurs par défaut, ou de
spécifier d'autres options. L'option DHCP à transmettre peut être fournie sous
forme d'un nombre décimal ou sous la forme "option:<nom d'option>". Les nombres
correspondants aux options sont définis dans la RFC2132 et suivants. Les noms
d'options connus par Dnsmasq peuvent être obtenus via "Dnsmasq --help dhcp".
Par exemple, pour définir la route par défaut à 192.168.4.4, il est possible de
faire
.B --dhcp-option=3,192.168.4.4 
ou
.B --dhcp-option = option:router, 192.168.4.4
ou encore, pour positionner l'adresse du serveur de temps à 192.168.0.4, on peut
faire
.B --dhcp-option = 42,192.168.0.4 
ou 
.B --dhcp-option = option:ntp-server, 192.168.0.4
L'adresse 0.0.0.0 prends ici le sens "d'adresse de la machine sur laquelle
tourne Dnsmasq". Les types de données autorisées sont des adresses IP sous la
forme de 4 chiffres séparés par des points, un nombre décimal, une liste de
caractères hexadécimaux séparés par des 2 points, ou une chaîne de caractères.
Si des identifiants de réseaux sont fournis, alors cette option n'est envoyée
qu'aux réseaux dont tous les identifiants coïncident.

Un traitement spécial est effectué sur les chaînes de caractères fournies pour
l'option 119, conformément à la RFC 3397. Les chaînes de caractères ou les
adresses IP sous forme de 4 chiffres séparés par des points donnés en arguments
de l'option 120 sont traités conforméments à la RFC 3361. Les adresses IP sous
forme de 4 chiffres séparés par des points suivies par une barre montante "/",
puis une taille de masque sont encodés conforméments à la RFC 3442.

Attention : aucun test n'étant fait pour vérifier que des données d'un type
adéquat sont envoyées pour un numéro d'option donné, il est tout à fait possible
de persuader Dnsmasq de générer des paquets DHCP illégaux par une utilisation
incorrecte de cette option. Lorsque la valeur est un nombre décimal, Dnsmasq
doit déterminer la taille des données. Cela est fait en examinant le numéro de
l'option et/ou la valeur, mais peut-être évité en rajoutant un suffixe d'une
lettre comme suit :
b = un octet, s = 2 octets, i = 4 octets. Cela sert essentiellement pour des
options encapsulées de classes de vendeurs (voir plus bas), pour lesquelles 
Dnsmasq ne peut déterminer la taille de la valeur. Les données d'options
consistant uniquement de points et de décimaux sont interprétées par Dnsmasq
comme des adresses IP, et envoyées comme telles. Pour forcer l'envoi sous forme
de chaîne de caractère, il est nécessaire d'utiliser des guillemets doubles. Par
exemple, l'utilisation de l'option 66 pour fournir une adresse IP sous la forme
d'une chaîne de caractères comme nom de serveur TFTP, il est nécessaire de faire
comme suit :
.B --dhcp-option=66,"1.2.3.4"

Les options encapsulées de classes de vendeurs peuvent-être aussi spécifiées en
utilisant
.B --dhcp-option
: par exemple
.B --dhcp-option=vendor:PXEClient,1,0.0.0.0
envoie l'option encapsulée de classe de vendeur "mftp-address=0.0.0.0" à
n'importe quel client dont la classe de vendeur correspond à "PXEClient". La
correspondance pour les classes de vendeur s'effectue sur des sous-chaînes de
caractères (voir
.B --dhcp-vendorclass
pour plus de détails). Si une option de
classe de vendeur (numéro 60) est envoyée par Dnsmasq, alors cela est utilisé
pour sélectionner les options encapsulées, de préférence à toute option envoyée
par le client. Il est possible d'omettre complètement une classe de vendeur :
.B --dhcp-option=vendor:,1,0.0.0.0
Dans ce cas l'option encapsulée est toujours envoyée.

Les options peuvent-être encapsulées au sein d'autres options :
par exemple
.B --dhcp-option=encap:175, 190, "iscsi-client0"
enverra l'option 175, au sein de laquelle se trouve l'option 190.
Plusieurs options encapsulées avec le même numéro d'option seront correctement
combinées au sein d'une seule option encapsulée. Il n'est pas possible de
spécifier encap: et vendor: au sein d'une même option dhcp.

L'adresse 0.0.0.0 n'est pas traitée de manière particulière lorsque fournie dans
une option encapsulée.
.TP
.B --dhcp-option-force=[<identifiant de réseau>,[<identifiant de réseau>,]][encap:<option>,][vendor:[<classe de vendeur>],]<option>,[<valeur>[,<valeur>]]
Cela fonctionne exactement de la même façon que
.B --dhcp-option
sauf que cette option sera toujours envoyée, même si le client ne la demande pas
dans la liste de paramêtres requis. Cela est parfois nécessaire, par exemple lors
de la fourniture d'options à PXELinux.
.TP
.B --dhcp-no-override
Désactive la réutilisation des champs DHCP nom de serveur et nom de
fichier comme espace supplémentaire pour les options. Si cela est
possible, dnsmasq déplace les informations sur le serveur de démarrage
et le nom de fichier (fournis par 'dhcp-boot') en dehors des champs
dédiés à cet usage dans les options DHCP. Cet espace supplémentaire est
alors disponible dans le paquet DHCP pour d'autres options, mais peut, dans
quelques rares cas, perturber des clients vieux ou défectueux. Cette
option force le comportement à l'utilisation des valeurs "simples et sûres"
afin d'éviter des problèmes dans de tels cas.
.TP
.B \-U, --dhcp-vendorclass=<identifiant de réseau>,<classe de vendeur>
Associe une chaîne de classe de vendeur à un indentifiant de réseau. La plupart
des clients DHCP fournissent une "classe de vendeur" ("vendor class") qui
représente, d'une certaine façon, le type d'hôte. Cette option associe des
classes de vendeur à des labels, de telle sorte que des options DHCP peuvent-être
fournie de manière sélective aux différentes classes d'hôtes. Par exemple,
.B dhcp-vendorclass=printers,Hewlett-Packard JetDirect
permet de n'allouer des options qu'aux imprimantes HP de la manière suivante :
.B --dhcp-option=printers,3,192.168.4.4
La chaîne de caractères de la classe de vendeur founie en argument est cherchée
en temps que sous-chaîne de caractères au sein de la classe de vendeur fournie
par le client, de façon à permettre la recherche d'un sous-ensemble de la chaîne
de caractères ("fuzzy matching").
.TP
.B \-j, --dhcp-userclass=<identifiant de réseau>,<classe utilisateur>
Associe une chaîne de classe d'utilisateur à un identifiant réseau (effectue la
recherche sur des sous-chaînes, comme pour les classes de vendeur). La plupart
des clients permettent de configurer une "classe d'utilisateur". Cette option
associe une classe d'utilisateur à un label, de telle manière qu'il soit
possible de fournir des options DHCP spécifiques à différentes classes d'hôtes.
Il est possible, par exemple, d'utiliser ceci pour définir un serveur
d'impression différent pour les hôtes de la classe "comptes" et ceux de la
classe "ingénierie".
.TP
.B \-4, --dhcp-mac=<identifiant de réseau>,<adresse MAC>
Associe une adresse matérielle (MAC) à un identifiant réseau. L'adresse
matérielle peut inclure des jokers. Par exemple
.B --dhcp-mac=3com,01:34:23:*:*:*
permet de définir le label "3com" pour n'importe quel hôte dont l'adresse
matérielle coïncide avec les critères définis.
.TP
.B --dhcp-circuitid=<identifiant de réseau>,<identifiant de circuit>, --dhcp-remoteid=<identifiant de réseau>,<identifiant distant>
Associe des options de relais DHCP issus de la RFC3046 à des identifiants de
réseau. Cette information peut-être fournie par des relais DHCP. L'identifiant
de circuit ou l'identifiant distant est normalement fourni sous la forme d'une
chaîne de valeurs hexadécimales séparées par des ":", mais il est également
possible qu'elle le soit sous la forme d'une simple chaîne de caractères. Si
l'identifiant de circuit ou d'agent correspond exactement à celui fourni par le
relais DHCP, alors l'identifiant de réseau est positionné.
.TP
.B --dhcp-subscrid=<identifiant de réseau>,<identifiant d'abonné>
Associe des options de relais DHCP issues de la RFC3993 à des identifiants de
réseau.
.TP
.B --dhcp-match=<identifiant de réseau>,<numéro d'option>|option:<nom d'option>[,<valeur>]
Si aucune valeur n'est spécifiée, associe l'identifiant de réseau si le client
envoie une option DHCP avec le numéro ou le nom spécifié. Lorsqu'une valeur est
fournie, positionne le label seulement dans le cas où l'option est fournie et
correspond à la valeur. La valeur peut-être de la forme "01:ff:*:02", auquel
cas le début de l'option doit correspondre (en respectant les jokers). La
valeur peut aussi être de la même forme que dans
.B dhcp-option
, auquel cas l'option est traitée comme un tableau de valeur, et un des
éléments doit correspondre, ainsi

--dhcp-match=efi-ia32,option:client-arch,6

spécifie le label "efi-ia32" si le numéro 6 apparaît dnas la liste
d'architectures envoyé par le client au sein de l'option 93. (se réferer
au RFC 4578 pour plus de détails). Si la valeur est un chaine de caractères,
celle-ci est recherchée (correspondance en temps que sous-chaîne).
.TP
.B \-J, --dhcp-ignore=<identifiant de réseau>[,<identifiant de réseau>]
Lorsque tous les identifiants de réseau fournis coïncident avec la liste
d'identifiants réseau dérivée des classes de réseau, hôte, vendeur et
utilisateur, ignorer l'hôte et ne pas donner de bail DHCP.
.TP
.B --dhcp-ignore-names[=<identifiant de réseau>[,<identifiant de réseau>]]
Lorsque tous les identifiant de réseau coïncident avec la liste d'identifiants
réseau dérivées des classes de réseau, hôte, vendeur et utilisateur, ignorer le
nom de machine fourni par l'hôte. Il est à noter que, à la différence de
l'option "dhcp-ignore", il est permis de ne pas fournir d'identifiant réseau.
Dans ce cas, les noms d'hôtes fournis par les clients DHCP seront toujours
ignorés, et les noms d'hôtes seront ajoutés au DNS en utilisant uniquement la
configuration dhcp-host de Dnsmasq, ainsi que le contenu des fichiers /etc/hosts
et /etc/ethers.
.TP
.B --dhcp-broadcast=<identifiant de réseau>[,<identifiant de réseau>]
Lorsque tous les identifiants de réseaux fournis correspondent à ceux
obtenus à partir des classes de réseau, d'hôte ou d'utilisateur, force
l'utilisation du broadcast pour communiquer avec l'hôte lorsque celui-ci n'est
pas configuré. La plupart des clients DHCP nécessitant une réponse par le biais
d'un broadcast activent une option dans leur requête, ce qui fait que cela
se fait automatiquement, mais ce n'est pas la cas de certains vieux clients BOOTP.
.TP
.B \-M, --dhcp-boot=[net:<identifiant de réseau>,]<nom de fichier>,[<nom de serveur>[,<adresse de serveur>]]
Spécifie les options BOOTP devant être retournées par le serveur DHCP. Le nom de
serveur ainsi que l'adresse sont optionnels : s'ils ne sont pas fournis, le nom
est laissé vide et l'adresse fournie est celle de la machine sur laquelle
s'exécute Dnsmasq. Si Dnsmasq founit un service TFTP (voir
.B --enable-tftp
), alors seul un nom de fichier est requis ici pour permettre un démarrage par
le réseau.
Si d'éventuels identifiants de réseau sont fournis, ils doivent coïncider avec
ceux du client pour que cet élement de configuration lui soit envoyé. Il est à
noter que les identifiants de réseau doivent-être préfixés par "net:".
.TP
.B --pxe-service=[net:<identifiant de réseau>,]<CSA>,<entrée de menu>,<nom de fichier>|<type de service de démarrage>[,<adresse de serveur>]
La plupart des ROMS de démarrage PXE ne permettent au système PXE que la simple
obtention d'une adresse IP, le téléchargement du fichier spécifié dans
.B dhcp-boot
et son exécution. Cependant, le système PXE est capable de fonctions bien plus
complexes pour peu que le serveur DHCP soit adapté.

Ceci spécifie l'option de démarrage qui apparaitra dans un menu de démarrage
PXE. <CSA> est le type du système client. Seuls des types de services valides
apparaitront dans un menu. Les types connus sont x86PC, PC98, IA64_EFI, Alpha,
Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI et X86-64_EFI;
D'autres types peuvent-être spécifiés sous la forme d'une valeur entière. Le
paramètre après le texte correspondant à l'entrée dans le menu peut être un nom
de fichier, auquel cas Dnsmasq agit comme un serveur de démarrage et indique au
client PXE qu'il faut télécharger ce fichier via TFTP, soit depuis ce serveur
(l'option
.B enable-tftp 
doit être spécifiée pour que cela marche), soit depuis un autre serveur TFTP
si une adresse de serveur est fournie.
Veuillez noter que le suffixe de "couche" (en principe ".0") est fourni par PXE
et ne doit pas être rajouté au nom de fichier. Si une valeur numérique entière
est fournir pour le type de démarrage, en remplacement du nom de fichier, le
client PXE devra chercher un service de démarrage de ce type sur le réseau.
Cette recherche peut être faite via multicast ou broadcast, ou directement
auprès d'un serveur si son adresse IP est fournie dans l'option. Un service de
démarrage de type 0 est spécial et provoquera une interruption du démarrage par
le réseau ainsi que la poursuite du démarrage sur un média local.
.TP
.B --pxe-prompt=[net:<identifiant de réseau>,]<invite>[,<délai>]
Cette option permet d'afficher une invite à la suite du démarrage PXE. Si un
délai est fourni, alors la première entrée du menu de démarrage sera
automatiquement exécutée après ce délai. Si le délai vaut 0, alors la première
entrée disponible sera exécutée immédiatement. Si
.B pxe-prompt
est omis, le système attendra un choix de l'utilisateur s'il existe plusieurs
entrées dans le menu, ou démarrera immédiatement dans le cas où il n'y a qu'une
seule entrée. Voir
.B pxe-service 
pour plus de détails sur les entrées de menu.

Dnsmasq peut servir de "proxy-DHCP" PXE, dans le cas où un autre serveur DHCP
sur le réseau est responsable de l'allocation des adresses IP, auquel cas
Dnsmasq se contente de fournir les informations données dans les options
.B pxe-prompt
et
.B pxe-service
pour permettre le démarrage par le réseau. Ce mode est activé en utilisant le
mot-clef
.B proxy
dans
.B dhcp-range.
.TP
.B \-X, --dhcp-lease-max=<nombre>
Limite Dnsmasq à un maximum de <nombre> baux DHCP. Le défaut est de 150. Cette
limite permet d'éviter des attaques de déni de service ("DoS") par des hôtes
créant des milliers de baux et utilisant beaucoup de mémoire dans le processus
Dnsmasq.
.TP
.B \-K, --dhcp-authoritative
Cette option doit être donnée lorsque Dnsmasq est le seul serveur DHCP sur le
réseau. Cela change le comportement par défaut qui est celui d'un strict respect
des RFC, afin que les requêtes DHCP pour des baux inconnus par des hôtes
inconnus ne soient pas ignorées. Cela permet à de nouveaux hôtes d'obtenir des
baux sans tenir compte de fastidieuses temporisations ("timeout"). Cela permet
également à Dnsmasq de reconstruire sa base de donnée contenant les baux sans
que les clients n'aient besoin de redemander un bail, si celle-ci est perdue.
.TP
.B --dhcp-alternate-port[=<port serveur>[,<port client>]]
Change les ports utilisés par défaut pour le DHCP. Si cette option est donnée
toute seule sans arguments, alors change les ports utilisés pour le DHCP
de 67 et 68 respectivement à 1067 et 1068. Si un seul argument est donné, ce
numéro est utilisé pour le port serveur et ce numéro plus 1 est utilisé pour le
port client. Enfin, en fournissant deux numéros de ports, il est possible de
spécifier arbitrairement 2 ports à la fois pour le serveur et pour le client DHCP.
.TP
.B \-3, --bootp-dynamic[=<identifiant de réseau>[,<identifiant de réseau>]]
Permet l'allocation dynamique d'adresses IP à des clients BOOTP. Utiliser cette
option avec précaution, une adresse allouée à un client BOOTP étant perpétuelle,
et de fait n'est plus disponibles pour d'autres hôtes. Si aucun argument n'est
donné, alors cette option permet une allocation dynamique dans tous les cas. Si
des arguments sont spécifiés, alors l'allocation ne se fait que lorsque tous
les identifiants coïncident. Il est possible de répeter cette option avec
plusieurs jeux d'arguments.
.TP
.B \-5, --no-ping
Par défaut, le serveur DHCP tente de s'assurer qu'une adresse n'est pas utilisée
avant de l'allouer à un hôte. Cela est fait en envoyant une requête ICMP de type
"echo request" (aussi connue sous le nom de "ping") à l'adresse en question. Si
le serveur obtient une réponse, alors l'adresse doit déjà être utilisée et une
autre est essayée. Cette option permet de supprimer cette vérification. A
utiliser avec précaution.
.TP
.B --log-dhcp
Traces additionnelles pour le service DHCP : enregistre toutes les options
envoyées aux clients DHCP et les identifiants de réseaux utilisés pour la
détermination de celles-ci.
.TP
.B \-l, --dhcp-leasefile=<chemin de fichier>
Utilise le fichier dont le chemin est fourni pour stocker les informations de
baux DHCP.
.TP 
.B \-6 --dhcp-script=<chemin de fichier>
Lorsqu'un bail DHCP est créé, ou qu'un ancien est supprimé, le fichier dont le
chemin  est spécifié est exécuté. Les arguments fournis à celui-ci sont soit
"add" ("ajouter"), "old" ("ancien") ou "del" ("supprimer"), suivi de l'adresse
MAC de l'hôte puis l'adresse IP et le nom d'hôte si celui-ci est
connu."add" signifie qu'un bail a été créé, "del" signifie qu'il a été supprimé,
"old" notifie que le bail existait au lancement de Dnsmasq, ou un changement
d'adresse MAC ou de nom d'hôte pour un bail existant (ou, dans le cas où
leasefile-ro est spécifié, un changement de durée de bail ou d'identifiant
d'hôte). Si l'adresse Mac est d'un type de réseau autre qu'ethernet, il est
nécessaire de la préceder du type de réseau, par exemple "06-01:23:45:67:89:ab"
pour du token ring. Le processus est exécuté en temps que super-utilisateur 
(si Dnsmasq a été lancé en temps que "root"), même si Dnsmasq est configuré 
pour changer son UID pour celle d'un utilisateur non-privilégié.
L'environnement est hérité de celui de l'invocation du processus Dnsmasq, et
si l'hôte fournit un identifiant de client, celui-ci est stocké dans la
variable d'environnement DNSMASQ_CLIENT_ID. Si un nom de domaine pleinement
qualifié (FQDN)  est connu pour l'hôte, la part relative au domaine est stockée
dans DNSMASQ_DOMAIN. Si le client fournit une information de classe de vendeur,
de classe d'utilisateur ou un nom d'hôte, celles-ci sont positionnées dans les
variables DNSMASQ_VENDOR_CLASS et DNSMASQ_USER_CLASS0 à DNSMASQ_USER_CLASSn
et DNSMASQ_SUPPLIED_HOSTNAME respectivement, mais seulement pour les actions
"add" et "old" lorsqu'un hôte reprend un bail existant, ces variables n'étant
pas stockées dans la base de baux de Dnsmasq. Si Dnsmasq a été compilé avec
l'option HAVE_BROKEN_RTC ("horloge RTC défectueuse"), alors la durée du bail
(en secondes) est stockée dans la variable DNSMASQ_LEASE_LENGTH, sinon la date
d'expiration du bail est toujours stocké dans la variable d'environnement
DNSMASQ_LEASE_EXPIRES. Le nombre de secondes avant expiration est toujours
stocké dans DNSMASQ_TIME_REMAINING. Si un bail était associé à un nom d'hôte et
que celui-ci est supprimé, un évênement de type "old" est généré avec le
nouveau statut du bail, c-à-d sans nom d'hôte, et le nom initial est fourni
dans la variable d'environnement DNSMASQ_OLD_HOSTNAME. La variable
DNSMASQ_INTERFACE contient le nom de l'interface sur laquelle la requête est
arrivée; ceci n'est pas renseigné dans le cas des actions "old" ayant lieu
après un redémarrage de dnsmasq. La variable DNSMASQ_RELAY_ADDRESS est
renseignée si le client a utilisé un relai DHCP pour contacter Dnsmasq, si
l'adresse IP du relai est connue.
Tous les descripteurs de fichiers sont fermés, sauf stdin, stdout et stderr qui
sont ouverts sur /dev/null (sauf en mode déverminage).
Le script n'est pas lancé de manière concurrente : si un autre changement de
bail intervient, le script ne sera relancé que lorsque l'exécution actuelle sera
terminée.
Au démarrage de Dnsmasq, le script sera invoqué pour chacun des baux existants
dans le fichier des baux. Le script sera lancé avec l'action "del" pour les baux
expirés, et "old" pour les autres. <chemin de fichier> doit être un chemin
absolu (c'est-à-dire partant de la racine "/"), aucune recherche n'aura lieu
dans les répertoires de la variable d'environnement PATH. Lorsque Dnsmasq reçoit
un signal HUP, le script sera invoqué avec une action "old" pour tous les baux
existants.
.TP 
.B --dhcp-scriptuser
Spécifie l'utilisateur sous lequel le script lease-change doit être exécuté. La
valeur par défaut correspond à l'utilisateur root mais peut-être changée par le
biais de cette option.
.TP
.B \-9, --leasefile-ro
Supprimer complètement l'usage du fichier servant de base de donnée pour les
baux DHCP. Le fichier ne sera ni créé, ni lu, ni écrit. Change la façon dont le
script de changement d'état de bail est lancé (si celui-ci est fourni par le
biais de l'option
.B --dhcp-script
), de sorte que la base de données de baux puisse
être complètement gérée par le script sur un stockage externe. En addition aux
actions décrites dans 
.B  --dhcp-script,
le script de changement d'état de bail est appellé une fois, au lancement de
Dnsmasq, avec pour seul argument "init". Lorsqu'appellé de la sorte, le script
doit fournir l'état de la base de baux, dans le format de fichier de baux de
Dnsmasq, sur sa sortie standard (stdout) et retourner un code de retour de 0.
Positionner cette option provoque également une invocation du script de
changement d'état de bail à chaque changement de l'identifiant de client, de
longueur de bail ou de date d'expiration.
.TP
.B --bridge-interface=<interface>,<alias>[,<alias>]
Traiter les requêtes DHCP arrivant sur n'importe laquelle des interfaces <alias>
comme si elles arrivaient de l'interface <interface>. Cette option est
nécessaire lors de l'utilisation de pont ethernet "ancien mode" sur plate-forme
BSD, puisque dans ce cas les paquets arrivent sur des interfaces "tap" n'ont
pas d'adresse IP.
.TP
.B \-s, --domain=<domaine>[,<gamme d'adresses>]
Spécifie le domaine du serveur DHCP. Le domaine peut être donné de manière
inconditionnelle (sans spécifier de gamme d'adresses IP) ou pour des gammes
d'adresses IP limitées. Cela a deux effets; tout d'abord, le
serveur DHCP retourne le domaine à tous les hôtes le demandant, deuxièmement,
cela spécifie le domaine valide pour les hôtes DHCP configurés. Le but de cela
est de contraindre les noms d'hôte afin qu'aucun hôte sur le LAN ne puisse
fournir via DHCP un nom tel que par exemple "microsoft.com" et capturer du
trafic de manière illégitime. Si aucun nom de domaine n'est spécifié, alors
les noms d'hôtes avec un nom de domaine (c-à-d un point dans le nom) seront
interdits et enregistrés dans le journal (logs). Si un suffixe est fourni, alors
les noms d'hôtes possédant un domaine sont autorisés, pour peu que le nom de
domaine coïncide avec le nom fourni. De plus, si un suffixe est fourni, alors
les noms d'hôtes ne possédant pas de nom de domain se voient rajouter le
suffixe fourni dans l'option
.B --domain.
Ainsi, sur mon réseau, je peux configurer
.B --domain=thekelleys.org.uk
et avoir une machine dont le nom DHCP serait "laptop". L'adresse IP de cette
machine sera disponible à la fois pour "laptop" et "laptop.thekelleys.org.uk".
Si la valeur fournie pour <domaine> est "#", alors le nom de domaine est
positionné à la première valeur de la directive "search" du fichier
/etc/resolv.conf (ou équivalent). La gamme d'adresses peut être de la forme
<adresse ip>,<adresse ip> ou <adresse ip>/<masque de réseau> voire une simple
<adresse ip>. Voir
.B --dhcp-fqdn
qui peut changer le comportement de dnsmasq relatif aux domaines.
.TP
.B --dhcp-fqdn
Dans le mode par défaut, dnsmasq insère les noms non-qualifiés des clients
DHCP dans le DNS. Pour cette raison, les noms doivent être uniques, même si
deux clients ayant le même nom sont dans deux domaines différents. Si un
deuxième client DHCP apparaît ayant le même nom qu'un client déjà existant,
ce nom est transféré au nouveau client. Si
.B --dhcp-fqdn
est spécifié, ce comportement change : les noms non qualifiés ne sont plus
rajoutés dans le DNS, seuls les noms qualifiés le sont. Deux clients DHCP
avec le même nom peuvent tous les deux garder le nom, pour peu que la partie
relative au domaine soit différente (c-à-d que les noms pleinements qualifiés
diffèrent). Pour d'assurer que tous les noms ont une partie domaine, il doit-y
avoir au moins un
.B --domain
sans gamme d'adresses de spécifié lorsque l'option
.B --dhcp-fqdn 
est configurée.
.TP
.B --enable-tftp
Active la fonction serveur TFTP. Celui-ci est de manière délibérée limité aux
fonctions nécessaires au démarrage par le réseau ("net-boot") d'un client. Seul
un accès en lecture est possible; les extensions tsize et blksize sont supportées
(tsize est seulement supporté en mode octet).
.TP
.B --tftp-root=<répertoire>
Les fichiers à fournir dans les transferts TFTP seront cherchés en prenant le
répertoire fourni comme racine. Lorsque cela est fourni, les chemins TFTP
incluant ".." sont rejetés, afin d'éviter que les clients ne puissent sortir de
la racine spécifiée. Les chemins absolus (commençant par "/") sont autorisés,
mais ils doivent être à la racine TFTP fournie.
.TP
.B --tftp-unique-root
Ajouter l'adresse IP du client TFTP en temps qu'élément de chemin, à la suite
de la racine tftp (adresse sous forme de 4 chiffres séparés par des points).
Uniquement valable si une racine TFTP est spécifiée et si le répertoire
correspond existe. Ainsi, si la valeur pour tftp-root est "/tftp" et que le
client d'adresse IP 1.2.3.4 requiert le fichier "monfichier", alors le chemin
effective résultant sera "/tftp/1.2.3.4/monfichier" si /tftp/1.2.3.4 existe, ou
"/tftp/monfichier" dans le cas contraire.
.TP
.B --tftp-secure
Active le mode TFTP sécurisé : sans cela, tout fichier lisible
par Dnsmasq est disponible via TFTP (les règles de contrôle d'accès unix
habituelles s'appliquent). Lorsque l'option
.B --tftp-secure
est spécifiée, seuls les fichiers possédés par l'utilisateur sous lequel tourne
le processus Dnsmasq sont accessibles. Si Dnsmasq est exécuté en temps que
super-utilisateur ("root"), des règles différentes s'appliquent :
.B --tftp-secure
n'a aucun effet, mais seuls les fichiers ayant un droit de lecture pour tout le
monde sont accessibles. Il n'est pas recommandé d'exécuter Dnsmasq sous
l'utilisateur "root" lorsque le service TFTP est activé, et il est formellement
déconseillé de le faire sans fournir l'option
.B --tftp-root.
Sans cela, en effet, l'accès de tous les fichiers du serveur pour lequel le
droit de lecture pour tout le monde est positionné ("world-readable") devient
possible par n'importe quel hôte sur le réseau.
.TP
.B --tftp-max=<connexions>
Définit le nombre maximum de connexions TFTP simultanées autorisées. La valeur
par défaut est de 50. Lorsqu'un grand nombre de connexions TFTP est spécifié,
il se peut que la limite de nombre de descripteurs de fichiers par processus
soit atteinte. Dnsmasq nécessite quelques descripteurs de fichiers, ainsi qu'un
descripteur de fichier pour chaque connexion TFTP simultanée et pour chacun des
fichiers devant être fournis. De fait, servir le même fichier à n clients ne
nécessitera qu'environ n + 10 descripteurs de fichiers, alors que fournir des
fichiers tous différents à n clients utilisera environ (2*n) + 10 descripteurs.
Si elle est donnée, l'option 
.B --tftp-port-range
peut affecter le nombre maximum de connexions concurrentes.
.TP
.B --tftp-no-blocksize
Empêche le serveur TFTP de négocier l'option "blocksize" (taille de bloc) avec
les clients. Certains clients buggés spécifient cette option mais se comportent
ensuite de manière incorrecte si celle-ci est accordée.
.TP
.B --tftp-port-range=<début>,<fin>
Un serveur TFTP écoute sur le port prédéfini 69 ("well-known port") pour
l'initiation de la connexion, mais utilise également un port dynamiquement
alloué pour chaque connexion. Normalement, ces ports sont alloués par
le système d'exploitation, mais cette option permet de spécifier une gamme
de ports à utiliser pour les transferts TFTP. Cela peut-être utile si
TFTP doit traverser un dispositif garde-barrière ("firewall"). La valeur
de début pour la plage de port ne peut-être inférieure à 1025 sauf si
dnsmasq tourne en temps que super-utilisateur ("root"). Le nombre de
connexions TFTP concurrentes est limitée par la taille de la gamme de
ports ainsi spécifiée.
.TP
.B --tftp-port-range=<début>,<fin>
Un serveur TFTP écoute sur un numéro de port bien connu (69) pour l'initiation
de la connexion, et alloue dynamiquement un port pour chaque connexion. Ces
numéros de ports sont en principe alloués par le système d'exploitation, mais
cette option permet de spécifier une gamme de ports à utiliser pour les
transferts TFTP. Cela peut-être utile lorsque ceux-ci doivent traverser un
dispositif garde-barrière ("firewall"). Le début de la plage ne peut-être
inférieur à 1024 à moins que Dnsmasq ne fonctionne en temps que
super-utilisateur ("root"). Le nombre maximal de connexions TFTP concurrentes
est limitée par la taille de la plage de ports ainsi définie. 
.TP
.B \-C, --conf-file=<fichier>
Spécifie un fichier de configuration différent. L'option "conf-file" est
également autorisée dans des fichiers de configuration, ce qui permet
l'inclusion de multiples fichiers de configuration.
.TP
.B \-7, --conf-dir=<répertoire>[,<extension de fichier>...]
Lis tous les fichiers du répertoire spécifié et les traite comme des fichiers de
configuration. Si des extensions sont données, tout fichier finissant par ces
extensions seront ignorés. Tout fichier dont le nom se termine en ~ ou commence
par ., ainsi que ceux commençant ou se terminant par # seront systématiquement
ignorés.
Cette option peut être donnée en ligne de commande ou dans un fichier de
configuration.
.SH FICHIER DE CONFIGURATION
Au démarrage, Dnsmasq lis
.I /etc/dnsmasq.conf,
si ce fichier existe. (Sur FreeBSD, ce fichier est
.I /usr/local/etc/dnsmasq.conf
) (voir cependant les options 
.B \-C
et
.B \-7
). Le format de ce fichier consiste en une option par ligne, exactement comme
les options longues détaillées dans la section OPTIONS, mais sans être précédées
par "--". Les lignes commençant par # sont des commentaires et sont ignorées.
Pour les options qui ne peuvent-être spécifiées qu'une seule fois, celle du
fichier de configuration prends le pas sur celle fournie en ligne de commande.
Il est possible d'utiliser des guillemets afin d'éviter que les ",",":","." et
"#" ne soit interprêtés, et il est possible d'utiliser les séquences
d'échappement suivantes : \\\\ \\" \\t \\e \\b \\r et \\n. Elles correspondent
respectivement à la barre oblique descendante ("anti-slash"), guillemets doubles,
tabulation, caractère d'échappement ("escape"), suppression ("backspace"), retour ("return") et
nouvelle ligne ("newline").
.SH NOTES
A la réception d'un signal SIGHUP,
.B Dnsmasq
vide son cache et recharge les fichiers
.I /etc/hosts
et
.I /etc/ethers 
ainsi que tout autre fichier spécifié par les options
.B --dhcp-hostsfile
,
.B --dhcp-optsfile
ou
.B --addn-hosts.
Le script de changement de bail est appellé pour chaque bail DHCP existant. Si
l'option
.B --no-poll
est positionnée, alors le fichier
.I /etc/resolv.conf
est également rechargé.
SIGHUP ne provoque PAS de rechargement du fichier de configuration.
.PP
A la réception d'un signal SIGUSR1,
.B Dnsmasq 
écrit des statistiques dans les traces système. Les informations fournies sont :
la taille du cache, le nombre de noms ayant été supprimés du cache avant
expiration afin de faire de la place pour les nouveaux noms, ainsi que le nombre
total d'entrées ayant été insérées dans le cache. Pour chaque serveur amont, il fournit
le nomnbre de requêtes transmises ainsi que le nombre de requêtes ayant résulté par une
erreur. Lorsque Dnsmasq a été lancé via
.B --no-daemon
ou lorsque la traçabilité maximale a été activée (
.B -q
), la totalité du contenu du
cache est de surcroît fournie.
.PP 
A la réception d'un signal SIGUSR2 et lorsqu'il enregistre directement ses
traces dans un fichier (voir
.B --log-facility
), alors 
.B Dnsmasq
ferme et re-rouvre le fichier de traces. Il faut noter que pendant cette
opération Dnsmasq ne s'exécute pas en temps que "root". Lorsqu'il créé un
fichier de traces pour la première fois, Dnsmasq change le propriétaire du
fichier afin de le faire appartenir à l'utilisateur non "root" sous lequel
Dnsmasq s'exécute. Le logiciel de rotation de fichiers de trace logrotate doit
être configuré pour créer un nouveau fichier avec un propriétaire identique au
fichier existant avant d'envoyer le signal SIGUSR2. Si une requête DNS TCP est
en cours, l'ancien fichier de traces reste ouvert dans le processus fils qui
traite la requête TCP et il peut y être écrit. Il existe cependant une limite
de 150 secondes après laquelle tous les processus traitant des requêtes TCP
expirent : pour cette raison, il est préférable de ne pas configurer la
compression des fichiers de traces venant juste de faire l'objet d'une rotation.
Dans le cas de l'utilisation du logiciel logrotate, les options requises sont
.B create 
et
.B delaycompress.

 
.PP
Dnsmasq est un logiciel de transmission de requêtes DNS : il n'est pas capable
d'effectuer une résolution de nom récursive en partant des serveurs DNS racine,
mais transmet de telles requêtes à un serveur DNS amont capable de telles
recherches récursives, ce qui est typiquement le cas d'un serveur DNS de FAI.
Par défaut, Dnsmasq lis
.I /etc/resolv.conf
pour découvrir les adresses IP des serveurs DNS amonts à utiliser, puisque cette
information est en général stockée à cet endroit. A moins que l'option
.B --no-poll
ne soit utilisée,
.B Dnsmasq
vérifie la date de modification du fichier
.I /etc/resolv.conf
(ou l'équivalent si 
.B \--resolv-file 
est utilisé), et le relis lorsqu'il change. Cela permet de définir les serveurs
DNS amont de manière dynamique lorsque PPP ou DHCP sont utilisés, puisque ces
protocoles fournissent cette information.
L'absence du fichier
.I /etc/resolv.conf
ne conduit pas à une erreur, puisqu'il peut très bien ne pas être créé avant
qu'une connexion PPP ne soit établie. Dans ce cas, Dnsmasq vérifie régulièrement
pour voir si un fichier
.I /etc/resolv.conf 
est créé. Dnsmasq peut être configuré pour lire plus d'un fichier resolv.conf.
Cela est utile sur un ordinateur portable où PPP et DHCP peuvent-être utilisés :
Dnsmasq peut alors être configuré pour lire à la fois
.I /etc/ppp/resolv.conf 
et
.I /etc/dhcpc/resolv.conf 
et utilisera le contenu du fichier ayant changé en dernier, ce qui permet de
passer automatiquement de serveurs DNS à d'autres.
.PP
Les serveurs amonts peuvent aussi être spécifiés sur la ligne de commande ou
dans un fichier de configuration. Ces spécifications de serveurs peuvent
éventuellement se voir adjoindre d'un nom de domaine qui précise à Dnsmasq quel
serveur utiliser pour trouver les noms d'un domaine donné.
.PP
Pour configurer Dnsmasq afin qu'il se comporte comme un cache pour la machine
sur laquelle il tourne, mettre "nameserver 127.0.0.1" dans le fichier
.I /etc/resolv.conf
afin de forcer les processus locaux à envoyer leurs requêtes à Dnsmasq. Ensuite,
spécifier les serveurs DNS amont soit en les fournissant directement à Dnsmasq
via l'option
.B \--server
ou alors en mettant leurs adresses dans un autre fichier, par exemple
.I /etc/resolv.dnsmasq
et en lançant Dnsmasq avec l'option
.B \-r /etc/resolv.dnsmasq.
Cette deuxième technique permet la mise-à-jour dynamique des addresses de
serveurs DNS amont par le biais de PPP ou DHCP.
.PP
Les adresses dans /etc/hosts prennent le dessus sur celles fournies par le
serveur DNS amont, ainsi "macompagnie.com 1.2.3.4" dans /etc/hosts assure que
les requêtes pour "macompagnie.com" retourneront toujours 1.2.3.4, même si une
requête au serveur DNS amont retournerait une adresse différente. Il y a une
exception à ceci : si le DNS amont contient un CNAME qui pointe vers un nom
présent dans /etc/hosts, alors la recherche du CNAME via Dnsmasq fournira
l'adresse DNS amont. Pour contourner cela, il suffit de mettre l'entrée
correspondant au CNAME dans /etc/hosts.

.PP
les identifiants de réseau fonctionnent comme suit : Dnsmasq associe à chaque
requête DHCP un ensemble d'identifiants de réseau; un pour la plage d'adresse
DHCP (
.B dhcp-range
) utilisée pour allouer l'adresse, un identifiant pour chaque entrée
.B dhcp-host
associée (il ajoute "known" lorsqu'une entrée dhcp-host coïncide), l'étiquette
"bootp" pour les requêtes BOOTP, un identifiant dont le nom est le nom de
l'interface sur laquelle la requête est arrivée, et éventuellement un
identifiant pour chaque classe de vendeur ou d'utilisateur
fournie par le client DHCP dans sa requête. Les options DHCP (
.B dhcp-option 
) ayant un identifiant de réseau seront utilisés de préférence à celles
sans identifiants de réseau, pour peu que
.I tous
les labels correspondent.
Le préfixe '#' sur un label est un indicateur de négation, ainsi
.B --dhcp=option=#purple,3,1.2.3.4
envoie l'option lorsque le label "purple" n'est pas dans la liste de labels
valides pour l'hôte considéré.
.PP
Si l'identifiant de réseau dans la plage d'adresses DHCP (
.B dhcp-range 
) est préfixé par 'net:', alors sa signification change : au lieu d'associer un
label à la plage spécifiée, cela indique un label de réseau devant être spécifié
par le client DHCP. Ainsi, s'il y a plus d'une plage d'adresses DHCP sur un
sous-réseau, et que l'une est préfixée par un identifiant de réseau (par exemple
l'un spécifié dans une option de classe de vendeur), alors un hôte ayant
l'identifiant de réseau en question positionné se verra allouer une adresse dans
la plage d'adresses DHCP préfixée.
.PP 
Le serveur DHCP intégré dans Dnsmasq fonctionne également en temps que serveur
BOOTP, pour peu que l'adresse MAC et l'adresse IP des clients soient fournies,
que ce soit par le biais de l'option 
.B dhcp-host 
ou dans le fichier
.I /etc/ethers
, et que l'option
.B dhcp-range 
soit présente afin d'activer le serveur DHCP pour un réseau donné (L'option
.B --bootp-dynamic
supprime la nécessité des associations statiques). Le paramètre
"filename" (nom de fichier) de la requête BOOTP est comparé avec les
identifiants de réseaux des options
.B  dhcp-option 
ainsi que le label "bootp", ce qui permet de contrôler les options retournées
aux différentes classes d'hôtes.

.SH CODES DE SORTIE
.PP
0 - Dnsmasq s'est correctement lancé en tâche de fond, ou alors s'est
correctement terminé si le lancement en tâche de fond n'a pas été activé.
.PP
1 - Un problème de configuration a été détecté.
.PP
2 - Un problème est survenu avec un accès réseau (adresse déjà utilisée,
tentative d'utiliser un port privilégié sans les permissions nécessaires).
.PP
3 - Un problème est survenu avec une opération sur un système de fichier
(fichier ou répertoire manquant, permissions).
.PP
4 - Impossibilité d'allouer de la mémoire.
.PP
5 - Autre problème.
.PP
11 ou plus - un code de retour différent de 0 a été reçu lors de l'appel au
processus "init" du script des bails. Le code de retour de Dnsmasq correspond
au code de retour du script plus 10.

.SH LIMITES
Les valeurs par défaut pour les limites de ressources de Dnsmasq sont en général
conservatrices et appropriées pour des utilisations embarquées sur des machines
de type routeur ayant des processeurs lents et une mémoire limitée. Sur du
matériel plus performant, il est possible d'augmenter les limites et de gérer
plus de clients. Les remarques suivantes s'appliquent à Dnsmasq version 2.37 et
ultérieur : les versions précédentes ne montaient pas en charge aussi bien.
 
.PP
Dnsmasq est capable de gérer le DNS et DHCP pour au moins un millier de clients.
Evidement, pour cela la valeur de 
.B --dhcp-lease-max
doit être augmentée et la durée des baux ne doit pas être très courte (moins
d'une heure). La valeur de
.B --dns-forward-max 
peut-être augmentée : commencer par la rendre égale au nombre de clients et
l'augmenter si le DNS semble lent. Noter que la performance du DNS dépends
également de la performance des serveurs amonts. La taille du cache DNS peut-
être augmentée : la limite en dur est de 10000 entrées et la valeur par défaut
(150) est très basse. Envoyer un signal SIGUSR1 à Dnsmasq le fait émettre des
informations utiles pour paramétrer la taille de cache. Voir la section
.B NOTES
pour plus de détails.
.PP
Le serveur TFTP intégré est capable de plusieurs transferts de fichiers
simultanés : La limite absolue est liée au nombre maximal de descripteurs de
fichiers alloué à un processus et à la capacité de l'appel système select() à
gérer un grand nombre de HANDLE de fichier. Si la limite est fixée trop haut par
le biais de
.B --tftp-max
elle sera réduite et la limite actuelle sera enregistrée au démarrage. Il faut
noter que plus de transferts sont possible lorsque le même fichier est transmis
au lieu d'avoir un fichier différent pour chaque transfert.

.PP
Il est possible d'utiliser Dnsmasq pour bloquer la publicité sur la toile
en associant des serveurs de publicité bien connus à l'adresse 127.0.0.1 ou
0.0.0.0 par le biais du fichier
.B /etc/hosts 
ou d'un fichier d'hôte additionnel. Cette liste peut-être très longue, Dnsmasq
ayant été testé avec succès avec un million de noms. Cette taille de fichier
nécessite un processeur à 1 Ghz et environ 60 Mo de RAM.

.SH FICHIERS
.IR /etc/dnsmasq.conf 

.IR /usr/local/etc/dnsmasq.conf

.IR /etc/resolv.conf

.IR /etc/hosts

.IR /etc/ethers

.IR /var/lib/misc/dnsmasq.leases 

.IR /var/db/dnsmasq.leases

.IR /var/run/dnsmasq.pid
.SH VOIR AUSSI
.BR hosts (5), 
.BR resolver (5)
.SH AUTEUR
Cette page de manuel a été écrite par Simon Kelley <simon@thekelleys.org.uk>.

La traduction dans un français bancal a été commise par Gildas Le Nadan
<3ntr0p13@gmail.com> : Toute révision/correction permettant de corriger
orthographe ou grammaire mais surtout les éventuelles fautes de sens sera la
bienvenue!
